--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
sbapp/services/sidebandservice.py bec6bda2f6c19c802fc7cffd3f18ccba9ecb8388 (bec6bda2) Text, 5.71 KB
Tff7b72import T7ee787time
Tff7b72import T7ee787RNS
Tff7b72from T7ee787os Tff7b72import Te6edf3environ
Tff7b72from T7ee787kivyT7ee787.T7ee787logger Tff7b72import Te6edf3LoggerTb4b4b4, Te6edf3LOG_LEVELS
T8b949e# TODO: Reset
Te6edf3LoggerTff7b72.Td2a8ffsetLevelTb4b4b4(Te6edf3LOG_LEVELSTb4b4b4[Ta5d6ff"Ta5d6ffdebugTa5d6ff"Tb4b4b4]Tb4b4b4)
T8b949e# Logger.setLevel(LOG_LEVELS["error"])
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Tff7b72from T7ee787jnius Tff7b72import Te6edf3autoclassTb4b4b4, Te6edf3cast
Tff7b72from T7ee787android Tff7b72import Te6edf3python_act
Te6edf3Context Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.content.ContextTa5d6ff'Tb4b4b4)
Te6edf3Intent Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.content.IntentTa5d6ff'Tb4b4b4)
Te6edf3BitmapFactory Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.graphics.BitmapFactoryTa5d6ff'Tb4b4b4)
Te6edf3Icon Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff"Ta5d6ffandroid.graphics.drawable.IconTa5d6ff"Tb4b4b4)
Te6edf3PendingIntent Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.app.PendingIntentTa5d6ff'Tb4b4b4)
Te6edf3AndroidString Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffjava.lang.StringTa5d6ff'Tb4b4b4)
Te6edf3NotificationManager Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.app.NotificationManagerTa5d6ff'Tb4b4b4)
Te6edf3Context Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.content.ContextTa5d6ff'Tb4b4b4)
Te6edf3NotificationBuilder Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.app.Notification$BuilderTa5d6ff'Tb4b4b4)
Te6edf3NotificationChannel Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.app.NotificationChannelTa5d6ff'Tb4b4b4)
Tff7b72from T7ee787sidebandT7ee787.T7ee787core Tff7b72import Te6edf3SidebandCore
Tff7b72elseTb4b4b4:
Tff7b72from T7ee787sbappT7ee787.T7ee787sidebandT7ee787.T7ee787core Tff7b72import Te6edf3SidebandCore
Tff7b72class T56d364AppProxyTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72pass
Tff7b72class T56d364SidebandServiceTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72def Td2a8ffandroid_notificationTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ff"Tb4b4b4, Te6edf3contentTff7b72=Ta5d6ff"Ta5d6ff"Tb4b4b4, Te6edf3tickerTff7b72=Ta5d6ff"Ta5d6ff"Tb4b4b4, Te6edf3groupTff7b72=Tff7b72NoneTb4b4b4, Te6edf3context_idTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Te6edf3package_name Tff7b72= Ta5d6ff"Ta5d6ffio.unsigned.sidebandTa5d6ff"
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffnotification_serviceTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffnotification_service Tff7b72= Te6edf3castTb4b4b4(Te6edf3NotificationManagerTb4b4b4, Tff7b72selfTff7b72.Td2a8ffapp_contextTff7b72.Td2a8ffgetSystemServiceTb4b4b4(
Te6edf3ContextTff7b72.Td2a8ffNOTIFICATION_SERVICE
Tb4b4b4)Tb4b4b4)
Te6edf3channel_id Tff7b72= Te6edf3package_name
Te6edf3group_id Tff7b72= Ta5d6ff"Ta5d6ff"
Tff7b72if Te6edf3group Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3channel_id Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ff.Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3groupTb4b4b4)
Te6edf3group_id Tff7b72+Tff7b72= Tffa657strTb4b4b4(Te6edf3groupTb4b4b4)
Tff7b72if Te6edf3context_id Tff7b72!= Tff7b72NoneTb4b4b4:
Te6edf3channel_id Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ff.Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3context_idTb4b4b4)
Te6edf3group_id Tff7b72+Tff7b72= Ta5d6ff"Ta5d6ff.Ta5d6ff"Tff7b72+Tffa657strTb4b4b4(Te6edf3context_idTb4b4b4)
Tff7b72if Tff7b72not Te6edf3title Tff7b72or Te6edf3title Tff7b72== Ta5d6ff"Ta5d6ff"Tb4b4b4:
Te6edf3channel_name Tff7b72= Ta5d6ff"Ta5d6ffSidebandTa5d6ff"
Tff7b72elseTb4b4b4:
Te6edf3channel_name Tff7b72= Te6edf3title
Tff7b72selfTff7b72.Td2a8ffnotification_channel Tff7b72= Te6edf3NotificationChannelTb4b4b4(Te6edf3channel_idTb4b4b4, Te6edf3channel_nameTb4b4b4, Te6edf3NotificationManagerTff7b72.Td2a8ffIMPORTANCE_DEFAULTTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffnotification_channelTff7b72.Td2a8ffenableVibrationTb4b4b4(Tff7b72TrueTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffnotification_channelTff7b72.Td2a8ffsetShowBadgeTb4b4b4(Tff7b72TrueTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffnotification_serviceTff7b72.Td2a8ffcreateNotificationChannelTb4b4b4(Tff7b72selfTff7b72.Td2a8ffnotification_channelTb4b4b4)
Te6edf3notification Tff7b72= Te6edf3NotificationBuilderTb4b4b4(Tff7b72selfTff7b72.Td2a8ffapp_contextTb4b4b4, Te6edf3channel_idTb4b4b4)
Te6edf3notificationTff7b72.Td2a8ffsetContentTitleTb4b4b4(Te6edf3titleTb4b4b4)
Te6edf3notificationTff7b72.Td2a8ffsetContentTextTb4b4b4(Te6edf3AndroidStringTb4b4b4(Te6edf3contentTb4b4b4)Tb4b4b4)
T8b949e# if group != None:
T8b949e# notification.setGroup(group_id)
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffnotification_small_iconTb4b4b4:
Te6edf3path Tff7b72= Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffnotification_icon
Te6edf3bitmap Tff7b72= Te6edf3BitmapFactoryTff7b72.Td2a8ffdecodeFileTb4b4b4(Te6edf3pathTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffnotification_small_icon Tff7b72= Te6edf3IconTff7b72.Td2a8ffcreateWithBitmapTb4b4b4(Te6edf3bitmapTb4b4b4)
Te6edf3notificationTff7b72.Td2a8ffsetSmallIconTb4b4b4(Tff7b72selfTff7b72.Td2a8ffnotification_small_iconTb4b4b4)
T8b949e# large_icon_path = self.sideband.icon
T8b949e# bitmap_icon = BitmapFactory.decodeFile(large_icon_path)
T8b949e# notification.setLargeIcon(bitmap_icon)
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffnotification_intentTb4b4b4:
Te6edf3notification_intent Tff7b72= Te6edf3IntentTb4b4b4(Tff7b72selfTff7b72.Td2a8ffapp_contextTb4b4b4, Te6edf3python_actTb4b4b4)
Te6edf3notification_intentTff7b72.Td2a8ffsetFlagsTb4b4b4(Te6edf3IntentTff7b72.Td2a8ffFLAG_ACTIVITY_SINGLE_TOPTb4b4b4)
Te6edf3notification_intentTff7b72.Td2a8ffsetActionTb4b4b4(Te6edf3IntentTff7b72.Td2a8ffACTION_MAINTb4b4b4)
Te6edf3notification_intentTff7b72.Td2a8ffaddCategoryTb4b4b4(Te6edf3IntentTff7b72.Td2a8ffCATEGORY_LAUNCHERTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffnotification_intent Tff7b72= Te6edf3PendingIntentTff7b72.Td2a8ffgetActivityTb4b4b4(Tff7b72selfTff7b72.Td2a8ffapp_contextTb4b4b4, T79c0ff0Tb4b4b4, Te6edf3notification_intentTb4b4b4, T79c0ff0Tb4b4b4)
Te6edf3notificationTff7b72.Td2a8ffsetContentIntentTb4b4b4(Tff7b72selfTff7b72.Td2a8ffnotification_intentTb4b4b4)
Te6edf3notificationTff7b72.Td2a8ffsetAutoCancelTb4b4b4(Tff7b72TrueTb4b4b4)
Te6edf3built_notification Tff7b72= Te6edf3notificationTff7b72.Td2a8ffbuildTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffnotification_serviceTff7b72.Td2a8ffnotifyTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3built_notificationTb4b4b4)
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffargument Tff7b72= Te6edf3environTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffPYTHON_SERVICE_ARGUMENTTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff'Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffapp_dir Tff7b72= Tff7b72selfTff7b72.Td2a8ffargument
Tff7b72selfTff7b72.Td2a8ffmulticast_lock Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffwake_lock Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffshould_run Tff7b72= Tff7b72False
Tff7b72selfTff7b72.Td2a8ffapp_proxy Tff7b72= Te6edf3AppProxyTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffandroid_service Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffapp_context Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffwifi_manager Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffnotification_service Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffnotification_channel Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffnotification_intent Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ffnotification_small_icon Tff7b72= Tff7b72None
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffandroid_service Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6fforg.kivy.android.PythonServiceTa5d6ff'Tb4b4b4)Tff7b72.Td2a8ffmService
Tff7b72selfTff7b72.Td2a8ffapp_context Tff7b72= Tff7b72selfTff7b72.Td2a8ffandroid_serviceTff7b72.Td2a8ffgetApplicationTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffgetApplicationContextTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffwifi_manager Tff7b72= Tff7b72selfTff7b72.Td2a8ffapp_contextTff7b72.Td2a8ffgetSystemServiceTb4b4b4(Te6edf3ContextTff7b72.Td2a8ffWIFI_SERVICETb4b4b4)
T8b949e# The returned instance /\ is an android.net.wifi.WifiManager
Tff7b72selfTff7b72.Td2a8ffsideband Tff7b72= Te6edf3SidebandCoreTb4b4b4(Tff7b72selfTff7b72.Td2a8ffapp_proxyTb4b4b4, Te6edf3is_serviceTff7b72=Tff7b72TrueTb4b4b4, Te6edf3android_app_dirTff7b72=Tff7b72selfTff7b72.Td2a8ffapp_dirTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffservice_context Tff7b72= Tff7b72selfTff7b72.Td2a8ffandroid_service
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffowner_service Tff7b72= Tff7b72self
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffstartTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffstartTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffshould_run Tff7b72= Tff7b72True
Tff7b72selfTff7b72.Td2a8fftake_locksTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffrunTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffstopTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffshould_run Tff7b72= Tff7b72False
Tff7b72def Td2a8fftake_locksTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffmulticast_lock Tff7b72== Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmulticast_lock Tff7b72= Tff7b72selfTff7b72.Td2a8ffwifi_managerTff7b72.Td2a8ffcreateMulticastLockTb4b4b4(Ta5d6ff"Ta5d6ffsideband_serviceTa5d6ff"Tb4b4b4)
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffmulticast_lockTff7b72.Td2a8ffisHeldTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffTaking multicast lockTa5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffmulticast_lockTff7b72.Td2a8ffacquireTb4b4b4(Tb4b4b4)
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffTook lockTa5d6ff"Tb4b4b4)
Tff7b72def Td2a8ffrelease_locksTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3RNSTff7b72.Td2a8ffvendorTff7b72.Td2a8ffplatformutilsTff7b72.Td2a8ffget_platformTb4b4b4(Tb4b4b4) Tff7b72== Ta5d6ff"Ta5d6ffandroidTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffmulticast_lock Tff7b72== Tff7b72None Tff7b72and Tff7b72selfTff7b72.Td2a8ffmulticast_lockTff7b72.Td2a8ffisHeldTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffmulticast_lockTff7b72.Td2a8ffreleaseTb4b4b4(Tb4b4b4)
Tff7b72def Td2a8ffrunTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72while Tff7b72selfTff7b72.Td2a8ffshould_runTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffsidebandTff7b72.Td2a8ffsetstateTb4b4b4(Ta5d6ff"Ta5d6ffservice.heartbeatTa5d6ff"Tb4b4b4, Te6edf3timeTff7b72.Td2a8fftimeTb4b4b4(Tb4b4b4)Tb4b4b4)
Te6edf3timeTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff1Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffrelease_locksTb4b4b4(Tb4b4b4)
Te6edf3sbs Tff7b72= Te6edf3SidebandServiceTb4b4b4(Tb4b4b4)
Te6edf3sbsTff7b72.Td2a8ffstartTb4b4b4(Tb4b4b4)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────